<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麥當苗兒 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------

namespace User\Api;
use User\Api\Api;
use User\Model\UcenterMemberModel;

class UserApi extends Api{
    /**
     * 構造方法，實例化操作模型
     */
    protected function _init(){
        $this->model = new UcenterMemberModel();
    }

    /**
     * 註冊壹個新用戶
     * @param  string $username 用戶名
     * @param  string $password 用戶密碼
     * @param  string $email    用戶郵箱
     * @param  string $mobile   用戶手機號碼
     * @return integer          註冊成功-用戶信息，註冊失敗-錯誤編號
     */
    public function register($username,$account='',$password, $email, $mobile = '',$address='',$status=''){
        return $this->model->register($username,$account, $password, $email, $mobile,$address,$status);
    }

    /**
     * 用戶登錄認證
     * @param  string  $username 用戶名
     * @param  string  $password 用戶密碼
     * @param  integer $type     用戶名類型 （1-用戶名，2-郵箱，3-手機，4-UID）
     * @return integer           登錄成功-用戶ID，登錄失敗-錯誤編號
     */
    public function login($username, $password, $type = 1){
        return $this->model->login($username, $password, $type);
    }

    /**
     * 獲取用戶信息
     * @param  string  $uid         用戶ID或用戶名
     * @param  boolean $is_username 是否使用用戶名查詢
     * @return array                用戶信息
     */
    public function info($uid, $is_username = false){
        return $this->model->info($uid, $is_username);
    }

    /**
     * 檢測用戶名
     * @param  string  $field  用戶名
     * @return integer         錯誤編號
     */
    public function checkUsername($username){
        return $this->model->checkField($username, 1);
    }

    /**
     * 檢測郵箱
     * @param  string  $email  郵箱
     * @return integer         錯誤編號
     */
    public function checkEmail($email){
        return $this->model->checkField($email, 2);
    }

    /**
     * 檢測手機
     * @param  string  $mobile  手機
     * @return integer         錯誤編號
     */
    public function checkMobile($mobile){
        return $this->model->checkField($mobile, 3);
    }

    /**
     * 更新用戶信息
     * @param int $uid 用戶id
     * @param string $password 密碼，用來驗證
     * @param array $data 修改的字段數組
     * @return true 修改成功，false 修改失敗
     * @author huajie <banhuajie@163.com>
     */
    public function updateInfo($uid, $password, $data){
        if($this->model->updateUserFields($uid, $password, $data) !== false){
            $return['status'] = true;
        }else{
            $return['status'] = false;
            $return['info'] = $this->model->getError();
        }
        return $return;
    }

}